嵌入式环境搭建
参考
环境搭建
平台配置
- 宿主机:Win10
- 虚拟化软件:Vmware Station Pro 17
- 虚拟机:Ubuntu 22.04
- qemu 版本:最新 8.0
- qemu 架构:arm64
- qemu 运行的固件包括:
搭建过程
详见参考
宿主机安装 vm
TODO
虚拟机安装 Ubuntu 22.04
TODO
ubuntu 配置环境
换源
直接将 /etc/apt/source.list 换为国内镜像源的链接,具体方式查看 清华镜像源换源
另一种更换方式
安装常用软件
sudo apt update
sudo apt install gcc g++ cmake make gdb vim git openssh-server nfs-kernel-server
安装 qemu
详见
注意:如果内核版本比较高时,需要选择比较高版本的 qemu,推荐使用源码方式安装。
安装编译器
# 下载
wget https://mirrors.tuna.tsinghua.edu.cn/armbian-releases/_toolchain/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz
# 解压
tar -Jxvf gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz
# 移动至/opt
sudo mv gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu /opt
构建
编译 u-boot
export ARCH=arm64
export CROSS_COMPILE=/opt/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
# u-boot
cd u-boot
make qemu_arm64_defconfig
make -j16
cd -
编译 kernel
export ARCH=arm64
export CROSS_COMPILE=/opt/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
# linux
cd linux
make defconfig
make -j16
cd -
编译 buildroot
export ARCH=arm64
export CROSS_COMPILE=/opt/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
# buildroot
cd buildroot
make qemu_aarch64_virt_defconfig
make -j16
cd -
编译 atf
启动
cur_time=$(date +%Y-%m-%d-%H-%M-%S)
qemu-system-aarch64 \
-M virt,gic_version=3\
-cpu cortex-a53 \
-smp 2 \
-m 2048M \
-kernel ./linux/arch/arm64/boot/Image \
-drive file=./buildroot/output/images/rootfs.ext4,if=none,id=blk1,format=raw \
-device virtio-blk-device,drive=blk1 \
-append "console=ttyAMA0 root=/dev/vda" \
-nographic -d guest_errors,unimp -D log/$cur_time
过程中遇到的问题
- fakeroot: preload library
libfakeroot.so
not found, aborting- 如果没有安装库,直接安装
sudo apt install fakeroot
- 移动了 buildroot 文件夹的路径,要先清理在编译
make clean && make -j$(nproc)
- 如果没有安装库,直接安装
- /opt/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gdb: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
- 详见 https://blog.csdn.net/WM2014123/article/details/102984086
- 具体两种方式,如果本地有,则添加到搜索路径下;如果没有,直接安装